package com.systop.asset.mapper;

import com.systop.asset.entity.MaterialDisposal;
import com.systop.asset.entity.MaterialDisposalDetail;

import java.util.List;

/**
 * <p>InterfaceName : MaterialDisposalMapper</p>
 * <p>Description : 物资处置数据访问接口</p>
 *
 * @author 孙伟光
 * @version 1.0
 * @date 2025/7/7 14:43
 */
public interface MaterialDisposalMapper {

    /**
     * 根据ID查询物资处置信息
     * @param id 物资处置ID
     * @return 物资处置信息
     */
    MaterialDisposal selectMaterialDisposalById(Long id);


    /**
     * 根据ID查询物资处置详情信息
     * @param id 物资处置ID
     * @return 物资处置详情信息
     */
    MaterialDisposal selectMaterialDisposalMetailById(Long id);

    /**
     * 查询物资处置列表
     * @param materialDisposal 物资处置查询条件
     * @return 物资处置列表
     */
    List<MaterialDisposal> selectMateriaDisposalList(MaterialDisposal materialDisposal);

    /**
     * 新增物资处置信息
     * @param materialDisposal 物资处置信息
     * @return 影响的行数
     */
    int insertMaterialDisposal(MaterialDisposal materialDisposal);

    /**
     * 新增物资处置详情信息
     * @param materialDisposalDetail 物资处置详情信息
     * @return 影响的行数
     */
    int insertMaterialDisposalDetail(MaterialDisposalDetail materialDisposalDetail);

    /**
     * 修改物资处置信息
     * @param materialDisposal 物资处置信息
     * @return 影响的行数
     */
    int updateMaterialDisposal(MaterialDisposal materialDisposal);

    /**
     * 根据ID删除物资处置信息
     * @param id 物资处置ID
     * @return 影响的行数
     */
    int deleteMaterialDisposalById(Long id);

    /**
     * 根据处置单ID删除物资处置详情信息
     * @param disposalId 处置单ID
     * @return 影响的行数
     */
    int deleteMaterialDisposalDetailByDisposalId(Long disposalId);

    /**
     * 批量删除物资处置信息
     * @param ids 需要删除的物资处置ID数组
     * @return 影响的行数
     */
    int deleteMaterialDisposalByIds(Long[] ids);


    /**
     * 批量删除物资处置详情信息
     * @param disposalIds 需要删除的物资处置详情ID数组
     * @return 影响的行数
     */
    int deleteMaterialDisposalDetailByDisposalIds(Long[] disposalIds);
}
